Hypervisor technology efficiently facilitates the concurrent virtual operation of multiple guest operating systems, including multiple instances of the same operating system, on a non-virtual host computer. The hypervisor presents each guest operating system with a virtual operating platform and monitors the execution of each guest operating system in a way that all guest operating systems can properly and efficiently share the hardware resources available to the host computer. Through the use of a hypervisor, each guest operating systems appears identical to the host computer. Users of each guest operating system may be able to install applications on each guest operating system without impacting users of other guest operating systems operating on the host computer. When one guest operating system experiences a malfunction or a failure, the hypervisor will efficiently isolate that malfunction or failure from impacting the operation of other concurrently running guest operating systems. A proper distribution of guest operating systems over hypervisors can allow hypervisors to efficiently share their compute resources and avoid resource contention bottlenecks. Hypervisor vendors and other software providers have tools for managing guest operating systems in cloud computing environments and determining the proper guest operating systems placement.
Hypervisors are an important tool often used in consolidation of computers in order to reduce electricity, cooling, facility and other costs involved in running data centers. Hypervisors can also be used to migrate entire data centers from one geographic location to another and to construct various cloud computing environments. These environments are composed of hypervisors which together may host a multitude of guest operating systems. These environments are notable for their scalability i.e. if more compute power is needed to handle an increased workload, the hypervisors may provide additional resources to guest operating systems they host. The hypervisors may also increase the number of hosted virtual guest operating systems and, if necessary, additional hypervisors can be added to the compute cloud. As workload eases, the hypervisors may be powered off, or be put into a lower power state, in order to conserve electricity and other operating costs, or removed from the compute cloud entirely.
There are many types of hypervisors in the marketplace and a platform virtualization infrastructure may be composed of a combination of hypervisors. This is called a hybrid infrastructure. A hybrid compute cloud is a composite cloud which includes virtual resources from at least two independent compute clouds. Often, a company may operate a private compute cloud within its own data center. If the company needs additional compute resources, to handle increased demand in a busy time of the year, for example, the company may purchase virtual servers from a vendor compute cloud, such as AMAZON WEB SERVICES®.
The hypervisors are typically connected to each other through a computer network. Computer networks are well known in the art and Ethernet based computer network based on an IEEE 802 standard is predominant. Currently, Ethernet is standardized as IEEE 802.3, which is incorporated by reference as if fully set forth herein. An Ethernet computer network typically connects computers via Network Interface Cards (NIC) and one or more network routers and network switches. Network firewalls are used to limit information flow between computer networks and provide data and other resource protection.
Cloud computing networks provide a management interface, such as a web page or a communication protocol, by which guest operating systems can be controlled. New guest operating systems can be provisioned for, started, stopped, paused or deleted via the management interface. Guest operating systems can also be moved from one hypervisor to another. Because the hypervisors provide a common level of virtualization, guest operating systems may be moved from being hosted on one hypervisor to another without the knowledge or intervention of the users of the cloud. Other interactions with the guest operating systems via the management interface involve controlling hibernation, which is an operation where the compute state of the virtual guest operating system is recorded and the guest operating system is powered down. The compute state of the guest operating system can then be restored, possibly on a different hypervisor or even in a different compute cloud, at a later time. Further, by initiation via the management interface one or more copies of a guest operating system's compute image may also be cloned and started as additional guest operating systems. Hence, the compute cloud offers clients a great deal of agility in the creation and management of guest operating systems since guest operating systems can be created, destroyed, hibernated, cloned and moved.
The high agility of guest operating systems virtualized by hypervisors introduces many problems. Data centers are typically designed for a static environment where computers are physical entities, which often do not move. Computers are connected to network switches and other devices in a planned fashion and they are not disconnected except during maintenance and decommissioning. The tools and information repositories used to maintain data centers reflect these older best practices.
The increased frequency of guest operating systems entering and leaving a compute cloud, or physical computers off-loading computing needs to guest operating systems in a hybrid cloud manner, introduces many complications. It is important, but difficult, to maintain and track an accurate inventory of guest operating systems and know which cloud or hypervisor is hosting which guest operating systems at any given time. Auditing techniques are desired to ensure the integrity of the extended data center. An accurate inventory of guest operating systems is also important for purposes of accounting, billing, customer support, security and right-sizing of compute resources.
Furthermore, errors may occur during the creation, deletion, movement, cloning and/or hibernation of guest operating systems. For example, an error in the hypervisor may leave a guest operating system, which is supposed to be powered-off, in a powered-on state. This error, in combination with guest operating system movement, may cause an unwanted copy of the guest operating system to be running. If an error occurs during guest operating system movement, then it may be difficult to determine where the guest operating system is.
Also, tools for guest operating system placement and redistribution may introduce errors in the hypervisors and inventory records particularly if two or more guest placement tools, or engines, are used. There is no established standard for orchestrating guest operating system placement engines and they may inadvertently compete against each other. Placement engines typically operate directly in-conjunction with the hypervisors and do not directly notify other inventory systems.
Often, polling and an adherence to data center best practices and management mandates are used to alleviate these problems. That is, hypervisors are periodically polled to determine which guest operating systems they are hosting and the managers of data centers typically allow only a single guest operating system placement engine to be used in a cloud. Also, strict adherence to documentation and process are mandated in order to maintain cloud synchronization and reduce the creation of rogue guest operating systems. However, even these practices may have limitations because the polling is typically slow and cannot keep pace with the agility of the cloud. Users also may desire features offered by their preferred placement engines. Finally, best practices of documentation and process are also subject to human error.